﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


#region 文件信息
/****************************************************************
*	公司名称：福建力和行智能科技有限公司
*   作    者：Jeff
*   CLR 版本：4.0.30319.42000
*   创建时间：12/20/2024 11:20:05 AM
*	用 户 名：zheqichen 
*   描述说明：
*
*   修改历史：
*		1）	修 改 人：
*			修改日期：
*			修改内容：			
*
*****************************************************************/
#endregion

namespace Lhxzn.LangExtractor
{
    /// <summary>
    /// 类    名:TreeDataGridViewRowCollection
    /// 描    述:
    /// 修改时间:12/20/2024 11:20:05 AM
    /// </summary>
    public class TreeDataGridViewRowCollection: Collection<TreeDataGridViewRow>
    {
        #region 成员变量

        #region private



        #endregion


        #region protected



        #endregion


        #region public
        public TreeDataGridViewRow Owner { get; internal set; }

        #endregion

        #endregion


        #region 构造函数
        /// <summary>
        /// 函 数 名:构造函数
        /// 函数描述:默认构造函数
        /// 修改时间:12/20/2024 11:20:05 AM
        /// </summary>
        public TreeDataGridViewRowCollection(TreeDataGridViewRow owner)
        {
            this.Owner = owner;
        }
        #endregion

        #region 父类函数重载、接口实现

        #endregion

        #region 函数

        #region private



        #endregion


        #region protected
        protected override void InsertItem(int index, TreeDataGridViewRow item)
        {
            base.InsertItem(index, item);
            item.Parent = this.Owner;
        }

        protected override void RemoveItem(int index)
        {
            this[index].Parent = null;
            base.RemoveItem(index);

        }
        #endregion


        #region public



        public virtual TreeDataGridViewRow Add()
        {
            return Add(null);
        }

        public virtual TreeDataGridViewRow Add(string rowHeadText)
        {
            return Insert(this.Count, rowHeadText);
        }


        public virtual TreeDataGridViewRow Insert(int index)
        {
            return Insert(index, null);
        }

        public virtual TreeDataGridViewRow Insert(int index, string rowHeadText)
        {
            TreeDataGridView tdgv = this.Owner.DataGridView as TreeDataGridView;

            int rowIndex = this.Owner.LastRowIndex + 1;


            TreeDataGridViewRow rlt = tdgv.CreateRow();
            tdgv.Rows.Insert(rowIndex, rlt);
            rlt = (TreeDataGridViewRow)tdgv.Rows[rowIndex];
            this.Insert(index, rlt);
            rlt.Cells[0].Value = rowHeadText;

            rlt.Visible = !this.Owner.IsCollapse;
            return rlt;
        }

        #endregion

        #endregion
    }
}
